//
//  JSSTabBar.swift
//  WeiBoItem
//
//  Created by jss on 16/4/16.
//  Copyright © 2016年 jss. All rights reserved.
//

import UIKit

class JSSTabBar: UITabBar {
    
    //定义一个属性 当加号按钮被点击的时候执行的闭包
    var clickCenterBtnClosure:(()->())?
    
//    var num: String?
    
   override init(frame: CGRect) {
        super.init(frame: frame)
    
    //把button添加到当前自定义的tabbar上面
     addSubview(centerButton)
   
    
    }
   //这是写上面init方法的时候系统会自动要求添加的
   required init?(coder aDecoder: NSCoder) {
       fatalError("init(coder:) has not been implemented")
   }

  //重写layoutSubViews 来设置中间centerButton的位置 这个方法是布局子控件的
    override func layoutSubviews() {
        super.layoutSubviews()
        
        let centBtnW = self.bounds.size.width / 2
        let centBtnH = self.bounds.size.height / 2
        
        //设置button的位置是 在tabbar的中心点位置(这里不能直接等于self.center 因为参照不同 frame不同)
        centerButton.center = CGPoint(x: centBtnW, y: centBtnH)
        
        //调整其他按钮的宽度(w)及位置(x值) 通过遍历subView取到每个对应的BarButton
        
       // print(subviews.count)
       // print(subviews)
        
        let w = self.bounds.size.width / 5
        var index = 0
        for value in subviews {
            
            if value .isKindOfClass(NSClassFromString("UITabBarButton")!){
                
                //设置遍历到的BarButton的x值 和 w
                value.frame.size.width = w
                value.frame.origin.x = CGFloat(index) * w
                
                index++
                
                //当index是2 的时候 让index加一 自动的把消息按钮移动往后一个位置
                if index == 2 {
                    
                    index++
                }
                
            }
        }
       
    }
    
    
    //实现centerBtn的点击事件(把点击弹出控制器的操作交给TabbarContollor来做 这里用了闭包)
    func didClickCenterBtn(){
        
        //执行闭包
        self.clickCenterBtnClosure!()
    }
    
    
  //创建CenterButton
       //懒加载创建
    lazy var centerButton: UIButton = {()->UIButton in
        
        let button = UIButton()
        
        //添加button的点击事件
        button.addTarget(self, action: "didClickCenterBtn", forControlEvents: UIControlEvents.TouchUpInside)
    
        //设置button的背景颜色(正常状态下的颜色)
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        //选中状态下的背景颜色
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        
        //设置button的image
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState:.Highlighted)
        
       button.sizeToFit()
        

        return button
    
    }()

}
